CC=gcc
LD=gcc
CFLAGS=-I. -I../cmn -c -Wall -Wno-deprecated-declarations
LDFLAGS=-lcrypto


CMNOBJECTS= ../cmn/ramprakash.Part2Common.o

UDPOBJECTS= $(patsubst %UDP.c,%UDP.o,$(wildcard *UDP.c))
UDPEXE=udpClnt

TCPOBJECTS= $(patsubst %TCP.c,%TCP.o,$(wildcard *TCP.c))
TCPEXE=tcpClnt

all: $(TCPEXE)

aes : CFLAGS += -g -DAES
aes : $(TCPEXE)

test : CFLAGS += -g -DTESTING -DAES
test : $(TCPEXE)

debug : CFLAGS += -g -DDEBUG -DAES
debug : $(TCPEXE)

desdebug : CFLAGS += -g -DDEBUG -DDESDEBUG
desdebug : $(TCPEXE)

aesdebug : CFLAGS += -g -DDEBUG -DDESDEBUG -DAES
aesdebug : $(TCPEXE)

$(UDPEXE) : $(UDPOBJECTS) $(CMNOBJECTS) ../cmn/ramprakash.Part2Common.h
	$(LD) $(LDFLAGS) $(UDPOBJECTS) $(CMNOBJECTS) -o $(UDPEXE)

$(TCPEXE) : $(TCPOBJECTS) $(CMNOBJECTS) ../cmn/ramprakash.Part2Common.h Makefile
	$(LD) $(LDFLAGS) $(TCPOBJECTS) $(CMNOBJECTS) -o $(TCPEXE)

%.o :  %.c ../cmn/ramprakash.Part2Common.h ../cmn/ramprakash.Part2Common.c
	$(CC) $(CFLAGS) $< -o $@

$(CMNOBJECTS) : ../cmn/ramprakash.Part2Common.h ../cmn/ramprakash.Part2Common.c
	$(CC) $(CFLAGS) ../cmn/ramprakash.Part2Common.c -o ../cmn/$(CMNOBJECTS)

clean: 
	rm -f $(UDPOBJECTS) \
	rm -f $(UDPEXE) \
	rm -f $(TCPOBJECTS) \
	    rm -f $(TCPEXE)
